
package de.syfy.project.game.weapons;

import de.syfy.project.game.base.EquipObject;
import de.syfy.project.utils.Dice;

/**
 * Allgemeine Waffenklasse, soll nur spezialisiert implementiert werden (als Pistole etc)
 * 
 * @author felixspielmann
 */
public abstract class Weapon extends EquipObject{
    
    /**
     * um was für eine art Waffe handelt es sich?
     */
    public static enum waffentyp { Schwert , Hammer , Axt , Pistole , Gewehr , Flinte , MG , SMG } 
  
    /**
     * minimaler Schaden
     */
    private int dmg_Min;
    
    /**
     * maximaler Schaden
     */
    private int dmg_Max;
    
    /**
     * Ein Würfel um die Höhe des tatsächlichen Schadens zu ändern.
     */
    private Dice modifier;
    
    private waffentyp typ;
    
    /**
     * Konstruktor
     * @param eqPoints wertigkeit des Objektes
     */
    public Weapon(int eqPoints){
        super(eqPoints);
    }
    
    /**
     * setzt den Schaden der Waffe, basierend auf den Werten und der wertigkeit der Waffe
     */
    public void setDmg(){
        this.dmg_Min = Math.max(this.getValues().getStrength(), this.getValues().getKonstitution());
        this.dmg_Max = dmg_Min + this.getEqPoints()/4;
    }

    public Dice getModifier() {
        return modifier;
    }

    public void setModifier(Dice modifier) {
        this.modifier = modifier;
    }

    public int getDmg_Max() {
        return dmg_Max;
    }

    public int getDmg_Min() {
        return dmg_Min;
    }

    public waffentyp getTyp() {
        return typ;
    }

    public void setTyp(waffentyp typ) {
        this.typ = typ;
    }
    
    
    
    
}
